package com.zhuiyun.project.api.article.model;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.Transient;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;

/**
 * @ClassName ArticleModel
 * @Description TODO
 * @Author maomao
 * @Date 2023/6/12 14:42
 **/
@Data
@ApiModel(value = "文章审核模块")
public class ArticleAuditModel implements Serializable {

    @ApiModelProperty(value = "id")
    //id
    private Integer id;

    @NotNull(message = "医师id不能为空")
    @ApiModelProperty(value = "医师id")
    //医师id
    private Integer userId;

    @NotBlank(message = "文章标题不能为空")
    @ApiModelProperty(value = "文章标题")
    //文章标题
    private String articleTitle;

    @NotBlank(message = "文章内容不能为空")
    @ApiModelProperty(value = "文章内容")
    //文字内容
    private String articleContent;

    @ApiModelProperty(value = "图片")
    //图片
    private String images;

    @ApiModelProperty(value = "视频")
    //视频
    private String video;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")//JsonFormat是出参格式化。
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")//DateTimeFormat 是入参格式化；
    @ApiModelProperty(value = "发布时间")
    //发布时间
    private Date publishTime;


    @ApiModelProperty(value = "公开状态 (1)发布 (2)未发布")
    //公开状态 (1)发布 (2)未发布
    @NotNull(message = "公开状态不能为空")
    private Integer isPublished;

    @ApiModelProperty(value = "审核状态 (1)待审核 (2)审核通过 (3)审核不通过")
    //审核状态 (1)待审核 (2)审核通过 (3)审核不通过
    @NotNull(message = "审核状态不能为空")
    private Integer approvalStatus;

    @ApiModelProperty(value = "是否存為草稿 (1)保存 (2)未保存")
    //是否存為草稿 (1)保存 (2)未保存
    private Integer isDraftSaved;

    @ApiModelProperty(value = "标识文章是否隱藏 (1)隱藏 (2)不隱藏")
    //标识文章是否隱藏 (1)隱藏 (2)不隱藏
    @NotNull(message = "文章状态不能为空")
    private Integer isHidden;

    //创建时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")//JsonFormat是出参格式化。
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")//DateTimeFormat 是入参格式化；
    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    //修改时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")//JsonFormat是出参格式化。
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")//DateTimeFormat 是入参格式化；
    @ApiModelProperty(value = "修改时间")
    private Date updateTime;

    //删除标识
    @ApiModelProperty(value = "删除标识")
    @NotNull(message = "删除标识不能为空")
    private Integer delFlag;

    //医生姓名
    @Transient
    private String doctorName;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")//JsonFormat是出参格式化。
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")//DateTimeFormat 是入参格式化；
    @ApiModelProperty(value = "审核时间")
    private Date auditTime;
    //审核时间
    @Transient
    private String auditor;
    //审核人员
    @ApiModelProperty(value = "审核状态 (1)已处理 (2)未处理")
    //审核状态 (1)待审核 (2)审核通过 (3)审核不通过
    @NotNull(message = "审核状态不能为空")
    private Integer auditStatus;
    //审核状态(1已处理 2未处理)

    @ApiModelProperty(value = "审核状态 (1)同意 (2)驳回")
    private Integer auditResult;
    //审核结果(1同意 2驳回)
    @Transient
    private String auditComment;
    //标签
    @Transient
    private String dictLabel;
    //医生姓名
    private String userName;

}
